;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; This file is part of ICCLE2.
;
; ICCLE2 is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation, either version 3 of the License, or
; (at your option) any later version.
;
; ICCLE2 is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with ICCLE2.  If not, see <http://www.gnu.org/licenses/>.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;<h2>Convenient Glolbals</h2><p>The ``bald1`` says "N-1 globals is
;better than N. In practice, N can be often be reduced two: one
;for the fixed constants (which I call <t>*f*</t>, for "fixed") and one for the stuff that gets reset
;at the start of each run (which I call <t>*w*</t>, for "working memory").
;around <pre>
(defstruct fixed "fixed stuff"
  (bin-min     0)
  (bin-max   100)
  (bins       10)
  (inf        most-positive-fixnum))

(defstruct wm "runtime working memory"
  (kinds       (make-hash-table))
  (id          0)
  (verticies   (make-hash-table))
  edges
  )

(defparameter *w* (make-wm))
(defparameter *f* (make-fixed))

(defun clears  ()
  (dovalues (v (wm-verticies *w*)) (clear v)))

(defun zap ()
  (setf *w* (make-wm)))


